Visual comparisons using personal objects

ABSTRACT

Embodiments of the present invention provide automated systems and methods for visualizing a product using standard and personal objects. An image can be retrieved from the shopping history or shopping cart of a user, and the dimensions of the image can be automatically adjusted to make an accurate relative size comparison to a product for purchase.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of visual objectcomparisons, and more particularly to retrieving one or more objects ofpersonal interest to a user and using the object(s) to automaticallymake contextual visual comparisons to a product image.

It is known that users can view objects on a computer over the Internet,including products for purchase. Often, dimensions, such as a height,width, depth, and color are provided for these products, but it may bedifficult to have an intuitive idea of the real-world size of theproducts to be purchased from an online product website.

SUMMARY

According to one embodiment of the present invention, a method forvisual image comparison is provided, the method comprising: receiving,by one or more processors, a request for a visual comparison to a firstimage of an item displayed in a Web-based portal of a requester;responsive to receiving the request for the visual comparison to thefirst image, retrieving, by one or more processors, a second image of apreviously featured item , wherein the second image is related to thefirst image; generating, by one or more processors, a set of dimensionalproperties of the second image, based on the first image; anddisplaying, by one or more processors, the second image and the firstimage for the visual comparison, wherein the generated set ofdimensional properties of the second image represent a relative size ofthe first image to the second image.

Another embodiment of the present invention provides a computer programproduct for visual image comparison, based on the method describedabove.

Another embodiment of the present invention provides a computer systemfor visual image comparison, based on the method described above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a functional block diagram illustrating a distributed dataprocessing environment, in accordance with an embodiment of the presentinvention;

FIG. 2 is a flowchart illustrating operational steps for automaticallyvisualizing a product, by comparison to standardized objects or personalobjects, in accordance with an embodiment of the present invention;

FIGS. 3A and 3B depict an example of a visualization of an object usingpersonal objects and standardized objects, respectively, in accordancewith an embodiment of the present invention;

FIG. 3C is an example of a visualization of an environment usingstandardized and personal objects, in accordance with an embodiment ofthe present invention; and

FIG. 4 is a block diagram of internal and external components of thecomputing device of FIG. 1, in accordance with an embodiment of thepresent invention.

DETAILED DESCRIPTION

Embodiments of the present invention provide systems and methods for anautomated means for an automated contextual visualization usingstandardized objects or personal objects retrieved from a shoppinghistory or shopping cart of a user.

The present invention will now be described in detail with reference tothe Figures. FIG. 1 is a functional block diagram illustrating adistributed data processing environment, generally designated 100, inaccordance with an embodiment of the present invention. Modifications todistributed data processing environment 100 may be made by those skilledin the art without departing from the scope of the invention as recitedby the claims. In an exemplary embodiment, distributed data processingenvironment 100 includes computing device 120 and websites 108A-N, allinterconnected over network 110.

Network 110 can be, for example, a local area network (LAN), a wide areanetwork (WAN) such as the Internet, or a combination of the two, and caninclude wired, wireless, or fiber optic connections. In general, network110 can be any combination of connections and protocols that willsupport communication and/or access between computing device 120 andwebsites 108A-N.

Websites 108A-N include one or more websites which can be accessed byauto comparator module 122 for comparing a product to objects ofpersonal interest to a user. Websites 108A-N may include, for example,photo-sharing websites, online shopping websites, and social mediawebsites. User information, such as products currently in a user'sshopping cart, past viewed, and/or purchased products, may be stored onwebsites 108A-N. In this exemplary embodiment, auto comparator module122 is integrated with each of websites 108A-N, so that a user may makeproduct comparisons based on the products at each of websites 108A-N.

Computing device 120 includes auto comparator module 122, referenceobjects database 132, and display module 130. In various embodiments ofthe present invention, computing device 120 can be a laptop computer, atablet computer, a netbook computer, a personal computer (PC), a desktopcomputer, a personal digital assistant (PDA), a smart phone, a thinclient, or any programmable electronic device capable of executingcomputer readable program instructions. Computing device 120 may includeinternal and external hardware components, as depicted and described infurther detail with respect to FIG. 4.

Reference objects database 132 stores a standardized collection ofobjects with a relative cultural and cognitive recognition to a user.For example, reference objects may include an image of a dollar bill, animage of a human of a particular height and size, and an image of atablet device or smart phone of a known size. Reference objects database132 may be modified to include objects which have a culturalsignificance to the user. For example, in the United States, an image ofa dollar may be stored, whereas in Europe, an image of a euro may bestored. In this exemplary embodiment, reference objects database 132 isstored locally on computing device 120. In other embodiments, referenceobjects database 132 may be stored remotely, such as on a server, andaccessed and/or downloaded by computing device 120.

Display module 130 communicates with auto comparator module 122, toinvoke various object comparisons when a user views a product on one ormore of websites 108A-N. Display module 130 can include a graphical userinterface (GUI) (not depicted in FIG. 1), which allows a user to move,scale, and/or reposition a retrieved image near a product or offering,to make a contextual visual comparison. In some embodiments, displaymodule 130 can be integrated with auto comparator module 122.

In this exemplary embodiment, auto comparator module 122 includes objectselector 124, image scale and rotator 126, and positioner 128. Autocomparator module 122 can communicate with reference objects database132 and can communication with websites 108A-N via network 110.

Object selector 124 chooses one or more objects or environments for aproduct comparison. In this exemplary embodiment, object selector 124selects objects or environments which have a contextual relevance to auser. Object selector 124 determines which objects or environments mayhave a contextual relevance to a user by factoring the followingcriteria: the familiarity of the object or environment to the user(e.g., a room in the user's house or the cellphone of a user), the size,color, and/or volume of the object or environment is comparable to theproduct, and the usage scenarios between the product and object orenvironment (e.g., comparison between the size of a pan contemplated forpurchase and a user's stovetop). Additionally, object selector 124 maydetermine one or more contextually relevant images using informationfrom websites to which a user has uploaded content, viewed content,and/or purchased products. In this exemplary embodiment, object selector124 automatically selects a relevant image to make a contextualcomparison to a product.

Image scale and rotator 126 allows the scaling of a comparison image ina meaningful way to a target image (i.e., a product for purchase). Imagescale and rotator 126 may use provided product dimensions and/or maymine metadata from product manuals or other sources to determine ameaningful relative comparison, and may access reference objectsdatabase 132. For example, a user viewing a product, such as atelevision, may drag the image of the television to an image of theuser's living room, and image scale and rotator 126 automaticallyresizes the image of the television to the scale of the image of theuser's living room, so that the user may visualize how the real-worldsize of the television fits within the dimensions of the user's livingroom.

Positioner 128 determines how to place the selected relevant image neara viewed product. For example, if the selected image and product aresimilar (e.g., both the image and product are purses), positioner 128may automatically place them side by side or adjacent to each other. Insome embodiments, positioner 128 allows a user to drag a selected imageand place it anywhere near, or overlapping with, a product (e.g., placean image of a couch over a picture of a user's living room).

In other embodiments, a predictor module may be included within autocomparator module 122. The predictor module may calculate size changepredictions, and perform automatic notifications to a user. For example,the predictor module may estimate the size of the feet of a growingchild, based on statistical data of the growth of feet, and notify auser when a larger shoe size may be needed.

FIG. 2 is a flowchart illustrating operational steps for automaticallyvisualizing a product, by comparison to standardized objects or personalobjects, in accordance with an embodiment of the present invention.

In step 202, auto comparator module 122 receives an indication to starta visual comparison. In this exemplary embodiment, auto comparatormodule 122 receives a selection from a user to start a visual comparisonfor a product displayed on the user's Web-based shopping portal. Forexample, a user may click on an integrated link within a shoppingwebsite, indicating to initiate auto comparator module 122. In otherembodiments, auto comparator module 122 is initiated automaticallyresponsive to a user gesture, such as selecting a product to view on awebsite.

In step 204, auto comparator module 122 selects or receives an image. Inthis exemplary embodiment, auto comparator module 122 receives aselected image from the user's Web-based shopping portal, for a productcomparison. For example, auto comparator module 122 may receive aselected image of a product for purchase. In some embodiments, a useruploads an image of themselves and provides dimension (e.g., height)information. In other embodiments, auto comparator module 122 (i.e.,object selector 124) automatically retrieves an image from such placesas a user's current shopping cart, a user's personal shopping history, auser's account on a photo sharing website, or the shopping history of afriend or family member of the user (with the friend or family member'sauthorization). These websites and Web-based shopping portals are oftenfamiliar to users.

In step 206, auto comparator module 122 scales, rotates, and/orpositions the image with a displayed object. In this exemplaryembodiment, auto comparator module 122 automatically adjusts the imageof a product for a comparison and/or a retrieved image using image scaleand rotator 126 and/or positioner 128.

In step 208, auto comparator module 122 generates a new image anddisplays the new image. In this exemplary embodiment, auto comparatormodule 122 generates a new image, which includes the adjusted image ofthe selected personal or standard object(s) for comparison and theadjusted image of the product. The images are displayed together as anew image, after the scaling and/or repositioning of the images.

FIGS. 3A and 3B depict an example of a visualization of an object usingpersonal objects and standardized objects, respectively, in accordancewith an embodiment of the present invention.

FIG. 3A depicts wallet 304, which is an image a user is viewing for acontemplated purchase. The user, for example, wants to purchase a newwallet, which is at least large enough to fit the user's smart phone,keys, and money, from a shopping website. In this example, autocomparator module 122 automatically retrieves an image of wallet 302,which is in the user's shopping history, as the user purchased wallet302 one year ago (and which is able to fit the user's smart phone, keys,and wallet) and scales the image of wallet 302 to make a comparison withthe size of wallet 304. The user is able to readily identify that wallet304 is larger than wallet 302 (an item which the user has personallyused), and is able to fit the user's items.

FIG. 3B depicts another embodiment of auto comparator module 122. Inthis example, wallet 304 is an image a user is viewing for acontemplated purchase. As in FIG. 3A, the user, for example, wants topurchase a new wallet from a shopping website which is at least largeenough to fit the user's smart phone, keys, and money. In thisembodiment, auto comparator module 122 accesses reference objectsdatabase 132 and selects, and automatically scales, standardized objectsof money 306, smart phone 308, and key 310, for the user to make avisual comparison. The user is able to readily identify whether thestandardized objects (which represent the user's real-world possessions)will fit into wallet 304 (the contemplated product for purchase).

FIG. 3C is an example of a visualization of an environment usingstandardized and personal objects, in accordance with an embodiment ofthe present invention.

FIG. 3C depicts an image of environment 320 (e.g., a user's living room)and an image of object 322 (e.g., a couch), which the user iscontemplating purchasing. The image of environment 320 has the correctlyscaled dimensions (i.e., height, width, and depth) of the user's livingroom, and the real-world dimensions associated with object 322 are alsoknown. Auto comparator module 122 can scale and position the image ofobject 322 to fit the image of the user's living room (i.e., environment320), so that the user is able to visualize how object 322 will fit (andif it will fit) in the user's living room, before purchasing object 322.

FIG. 4 is a block diagram of internal and external components of acomputing device 400, which is representative of the computing device ofFIG. 1, in accordance with an embodiment of the present invention. Itshould be appreciated that FIG. 4 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments may be implemented. Ingeneral, the components illustrated in FIG. 4 are representative of anyelectronic device capable of executing machine-readable programinstructions. Examples of computer systems, environments, and/orconfigurations that may be represented by the components illustrated inFIG. 4 include, but are not limited to, personal computer systems,server computer systems, thin clients, thick clients, laptop computersystems, tablet computer systems, cellular telephones (e.g., smartphones), multiprocessor systems, microprocessor-based systems, networkPCs, minicomputer systems, mainframe computer systems, and distributedcloud computing environments that include any of the above systems ordevices.

Computing device 400 includes communications fabric 402, which providesfor communications between one or more processors 404, memory 406,persistent storage 408, communications unit 412, and one or moreinput/output (I/O) interfaces 414. Communications fabric 402 can beimplemented with any architecture designed for passing data and/orcontrol information between processors (such as microprocessors,communications and network processors, etc.), system memory, peripheraldevices, and any other hardware components within a system. For example,communications fabric 402 can be implemented with one or more buses.

Memory 406 and persistent storage 408 are computer readable storagemedia. In this embodiment, memory 406 includes random access memory(RAM) 416 and cache memory 418. In general, memory 406 can include anysuitable volatile or non-volatile computer readable storage media.Software is stored in persistent storage 408 for execution and/or accessby one or more of the respective processors 404 via one or more memoriesof memory 406.

Persistent storage 408 may include, for example, a plurality of magnetichard disk drives. Alternatively, or in addition to magnetic hard diskdrives, persistent storage 408 can include one or more solid state harddrives, semiconductor storage devices, read-only memories (ROM),erasable programmable read-only memories (EPROM), flash memories, or anyother computer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 408 can also be removable. Forexample, a removable hard drive can be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage408.

Communications unit 412 provides for communications with other computersystems or devices via a network (e.g., network 110). In this exemplaryembodiment, communications unit 412 includes network adapters orinterfaces such as a TCP/IP adapter cards, wireless Wi-Fi interfacecards, or 3G or 4G wireless interface cards or other wired or wirelesscommunication links. The network can comprise, for example, copperwires, optical fibers, wireless transmission, routers, firewalls,switches, gateway computers and/or edge servers. Software and data usedto practice embodiments of the present invention can be downloaded tocomputing device 400 through communications unit 412 (e.g., via theInternet, a local area network or other wide area network). Fromcommunications unit 412, the software and data can be loaded ontopersistent storage 408.

One or more I/O interfaces 414 allow for input and output of data withother devices that may be connected to computing device 400. Forexample, I/O interface 414 can provide a connection to one or moreexternal devices 420 such as a keyboard, computer mouse, touch screen,virtual keyboard, touch pad, pointing device, or other human interfacedevices. External devices 420 can also include portable computerreadable storage media such as, for example, thumb drives, portableoptical or magnetic disks, and memory cards. I/O interface 414 alsoconnects to display 422.

Display 422 provides a mechanism to display data to a user and can be,for example, a computer monitor. Display 422 can also be an incorporateddisplay and may function as a touch screen, such as a built-in displayof a tablet computer.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to personalize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the invention.The terminology used herein was chosen to best explain the principles ofthe embodiment, the practical application or technical improvement overtechnologies found in the marketplace, or to enable others of ordinaryskill in the art to understand the embodiments disclosed herein.

What is claimed is:
 1. A computer program product for visual imagecomparison, comprising: a non-transitory computer readable storagemedium and program instructions stored on the non-transitory computerreadable storage medium, the program instructions comprising: programinstructions to receive a request for a visual comparison to a firstimage of an item displayed in a Web-based shopping portal of arequester; responsive to receiving the request for the visual comparisonto the first image, program instructions to retrieve automatically asecond image of a previously featured item, wherein the second image: isdetermined to be contextually related to the first image based on a setof information from a website which the requester has uploaded contentand purchased a product, comprises one or more images associated with anobject previously purchased by the requester from a Web-based shoppinghistory of the requester, and comprises a comparable size to the firstimage and a similar usage scenario to the first image; programinstructions to retrieve a third image, wherein the third imagecomprises standard reference objects representative of a set ofpossessions of the requester, wherein the standard reference objects areimages offered at the Web-based shopping portal of the requester;program instructions to generate a set of dimensional properties of thesecond image, based on the first image, wherein: the set of dimensionalproperties of the second image comprise: a color, a size, anorientation, and a position on a display; and the set of dimensionalproperties of the second image are based in part on a determination madeby an image scaler and an image rotator, which mines metadata from aproduct manual to determine the set of definitional properties of thesecond image relative to the first image; program instructions togenerate a predicted change in the set of dimensional properties of thesecond image at a future period of time; and program instructions todisplay the third image, the second image, and the first image for thevisual comparison, wherein the generated set of dimensional propertiesof the second image represent a relative size of the first image to thesecond image, and the standard reference objects of the third imagerepresent a relative size of the first image to the third image.